iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0

New 21 Game

Q: https://leetcode.com/problems/new-21-game/description/

/*
    dp[p]: p point probabilities;
    dp[p] = dp[p - 1] + dp[p - 2] + ... + dp[p - maxPts]; (while p < k)
    dp[p] = dp[k - x]; (while p > k && p - x = k)
*/
class Solution {
    public double new21Game(int n, int k, int maxPts) {
        double dp[] = new double[n + 1];
        dp[0] = 1;
        double s = k > 0 ? 1 : 0;
        for (int i = 1; i <= n; i++) {
            dp[i] = s / maxPts;
            if (i < k) {
                s += dp[i];
            }
            if (i - maxPts >= 0 && i - maxPts < k) {
                s -= dp[i - maxPts];
            }
        }
        double ans = 0;
        for (int i = k; i <= n; i++) {
            ans += dp[i];
        }
        return ans;
    }
}

上一篇
09/22
下一篇
09/24
系列文
30天準備google面試30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言